package com.ynet.middleground.user.bean;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import com.ynet.core.common.BaseReqObj;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @Description:
 * @Param:
 * @return:
 * @Author: DaiGaoLe
 * @Date: 2019/10/22
 */
@Data
@ApiModel(value = "获取邀请码请求对象", description = "获取邀请码请求对象")
public class InvitationCodeReq extends BaseReqObj {

    private static final long serialVersionUID = -3003629205575609298L;
    // 要求人信息
    /**
     * 邀请人的id
     */
    @ApiModelProperty(value = "邀请人的id", notes = "邀请人的id", dataType = "Integer", required = true)
    @NotNull(message = "邀请人的id不能为空")
    private Integer userId;
    /**
     * 企业名称
     */
    @ApiModelProperty(value = "企业名称,邀请人为企业时必填", notes = "企业名称,邀请人为企业时必填", dataType = "String")
    private String enterpriseName;
    /**
     * 联系人
     */
    @ApiModelProperty(value = "联系人", notes = "联系人", dataType = "String", required = true)
    @NotEmpty(message = "联系人不能为空")
    private String contactPerson;
    /**
     * 联系人手机号
     */
    @ApiModelProperty(value = "联系人手机号", notes = "联系人手机号", dataType = "String", required = true)
    @NotEmpty(message = "联系人手机号不能为空")
    private String contactPhone;
    // 被邀请客户信息
    /**
     * 被邀请客户信息-企业名称
     */
    @ApiModelProperty(value = "被邀请客户信息-企业名称,被邀请客户为企业时必填", notes = "被邀请客户信息-企业名称,被邀请客户为企业时必填", dataType = "String")
    private String oppositeName;

    /**
     * 被邀请客户信息-联系人
     */
    @ApiModelProperty(value = "被邀请客户信息-被邀请客户为企业时填联系人,为自然人时填用户名称", notes = "被邀请客户信息-被邀请客户为企业时填联系人,为自然人时填用户名称", dataType = "String", required = true)
    @NotEmpty(message = "被邀请客户信息-联系人或用户名称不能为空")
    private String oppositeContactPerson;
    /**
     * 被邀请客户信息-联系人手机号
     */
    @ApiModelProperty(value = "被邀请客户信息-手机号", notes = "被邀请客户信息-手机号", dataType = "String", required = true)
    @NotEmpty(message = "被邀请客户信息-手机号不能为空")
    private String oppositeContactPhone;

    /**
     * 被邀请客户信息-证件号
     */
    @ApiModelProperty(value = "被邀请客户信息-证件号,被邀请客户为自然人时必填", notes = "被邀请客户信息-证件号,被邀请客户为自然人时必填", dataType = "String")
    private String oppositePapersNo;

    /**
     * 邀请码类型 0-静态 1-动态
     */
    @ApiModelProperty(value = "邀请码类型 0-静态 1-动态", notes = "邀请码类型 0-静态 1-动态", dataType = "String", required = true)
    @NotEmpty(message = "邀请码类型不可为空")
    private String inviteCodeType;

    @ApiModelProperty(value = "可用渠道，可上传多个，用英文逗号隔开，例：C01,C02",notes = "可用渠道，可上传多个，用英文逗号隔开，例：C01,C02",required = true)
    @NotEmpty(message = "可用渠道不能为空")
    private String availableChannel;

    /**
     * 被邀请人类型
     */
    @ApiModelProperty(value = "被邀请人类型0:企业客户，2:自然人客户，默认为0", notes = "被邀请人类型0:企业客户，2:自然人客户，默认为0", dataType = "String")
    private String userType;

}
